package com.zhihao.domain.strategy.service.rule.chain;

import com.zhihao.domain.strategy.service.rule.chain.factory.DefaultChainFactory;

/**
 * @author Jackson
 * @create 2025/3/12 9:54
 * @description 抽奖策略规则责任链接口     责任链模式 + 工厂方法模式(行为+创建)
 */
public interface ILogicChain extends ILogicChainArmory, Cloneable {

    /**
     * 责任链接口
     * @param userId    用户Id
     * @param strategyId    策略Id
     * @return 返回一个抽奖ID(对应责任链上的某个抽奖ID: 黑名单_1 权重策略_2)
     */
    DefaultChainFactory.StrategyAwardVO logic(String userId, Long strategyId);

}
